آموزش نوشتن دلخواه Custom Events در Spring
برای نوشتن یک رویداد دلخواه در Spring ، بایستی چند مرحله را انجام دهید . در این درس به صورت گام به گام همراه با سورس عملی مثال ، نحوه نوشتن یک Custom Event را آموزش داده ایم .
کارهای زیر را در نرم افزار Eclipse انجام دهید :
- یک پروژه جدید به نام Spring Example و یک پکیج جدید به نام com.tahlildadeh را در پوشه src برنامه ایجاد کنید . کلیه کلاس های دیگر برنامه ، بایستی در این پوشه تعریف شوند .
- به وسیله ابزار Add External JARs همانطور که درس نوشتن اولین برنامه Spring آموزش دادیم دادیم ، کتابخانه های لازم را به پروژه اضافه کنید .
- با گسترش بخش ApplicationEvwnt یک کلاس جدید به نام CustomEvent را اضافه کنید . این کلاس بایستی دارای یک متد سازه پیش فرض default Constructor بوده که از کلاس ApplicationEvent مشتق شده باشد .
- به محض اینکه event Class Publisher را ایجاد کرده که باعث اجرای ApplicationEventPublisherAwarie می شود .
از طرف دیگر شما نیاز دارید تا این کلاس را در فایل پیکربندی اطلاعات به عنوان یک Bean تعریف کنید . این کار باعث می شود تا Container بتواند Bean مورد نظر را به عنوان یک اجراکننده رویداد ( Publisher Event) شناسایی کرده ، چرا که خود آن Bean باعث اجرای رابط کاربری ApplicationEventpublisherAware می شود . - یک event منتشر شده را می توان درون یک کلاس مدیریت نمود . برای این منظور ما کلاس EventClassHandler را انتخاب کرده که خود باعث اجرای رابط کاربری ApplicationListener و متد onApplicationEvent برروی event مورد نظر ما می شود .
- فایل پیکربندی اطلاعات Bean.xml را در پوشه src ایجاد کرده و کلاس MainApp را نیز که به عنوان هسته اصلی برنامه می باشد ، به پروژه اضافه کنید .
- مرحله آخر نیز ایجاد محتوی تمامی فایل های جاوا برنامه و مقدار دهی فایل پیکربندی اطلاعات است تا بتوان پروژه را اجرا نمود .
کد زیر مربوط به فایل CustomEvent.java می باشد :
package com.tutorialspoint;
import org.springframework.context.ApplicationEvent;
public class CustomEvent extends ApplicationEvent{
public CustomEvent(Object source) {
super(source);
}
public String toString(){
return "My Custom Event";
}
}
در ادامه نیز کد مربوط به فایل CustomEventPublisher.java قرار داده شده است :
package com.tutorialspoint;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
public class CustomEventPublisher
implements ApplicationEventPublisherAware {
private ApplicationEventPublisher publisher;
public void setApplicationEventPublisher
(ApplicationEventPublisher publisher){
this.publisher = publisher;
}
public void publish() {
CustomEvent ce = new CustomEvent(this);
publisher.publishEvent(ce);
}
}
کد زیر نیز محتوای فایل CustomEventHandler.java را نشان می دهد :
package com.tutorialspoint; import org.springframework.context.ApplicationListener; public class CustomEventHandler implements ApplicationListener{ public void onApplicationEvent(CustomEvent event) { System.out.println(event.toString()); } }
کد فایل اصلی برنامه یا MainApp.java هم به این شکل می باشد :
package com.tutorialspoint;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ConfigurableApplicationContext context =
new ClassPathXmlApplicationContext("Beans.xml");
CustomEventPublisher cvp =
(CustomEventPublisher) context.getBean("customEventPublisher");
cvp.publish();
cvp.publish();
}
}
در نهایت نیز کد فایل پیکربندی اطلاعات Bean.xml به صورت زیر است :
xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
id="customEventHandler"
class="com.tutorialspoint.CustomEventHandler"/>
id="customEventPublisher"
class="com.tutorialspoint.CustomEventPublisher"/>
در صورتی که محتوی تمامی فایل ها را به درستی ایجاد کرده و شکلی وجود نداشته باشد ، پس از اجرای برنامه ، خروجی زیر حاصل می شود :
y Custom Event y Custom Event